home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / packer / xpkilzr / source / ilzr.h < prev    next >
C/C++ Source or Header  |  1996-02-26  |  2KB  |  60 lines

  1.  
  2.  
  3. #ifndef _ILZR_H
  4. #define _ILZR_H
  5. /**-----------------------------------------------------------------------
  6.   *   Bloque de constantes 'NEMOTECNICAS' para una mejor simplicidad
  7.   * de csdigo, lo siento si alguien cree que tengo demasiada tendencia
  8.   * a las palabras de origen sajsn, pero no puedo sufrir versiones 
  9.   * castellanas ni catalanas. Sera la costumbre.
  10.   *
  11.   **/
  12.  
  13. #define TRUE                  1
  14. #define FALSE                 0
  15. #define NIL                   0
  16. #define UNUSED                0
  17. #define CONTROL               0L    /* Indicador de que control   */
  18. #define END_OF_FILE           0L    /* Indic. fin de fichero      */
  19. #define BITS_CHARS            8     /* 8 order-0 ; 16 order-1 ... */
  20.  
  21. #define WIND_BITS            14
  22. #define WIND_SIZE             ( 1 << WIND_BITS )
  23. #define WIND_MASK             ( WIND_SIZE - 1 )
  24. #define MOD_WIN( a )          ( ( a ) & WIND_MASK )
  25.  
  26. #define INIT_BIT_BUMP              8
  27.  
  28. #define BITS_LOOKAHEAD        4
  29. #define RAW_LOOKAHEAD         ( 1 << BITS_LOOKAHEAD ) 
  30.  
  31. #define MIN_MATCH             3     /* No lo toques o no funciona */
  32. #define MAX_MATCH             (RAW_LOOKAHEAD + MIN_MATCH -1 )
  33.  
  34. #define HASH_BITS             15    /* Sugiero mmnimo de 12 pero llega a 10 */
  35. #define HASH_SIZE            (unsigned)(1<<HASH_BITS)
  36. #define HASH_MASK             ( HASH_SIZE - 1)
  37. #define HASH_SHIFT            (( HASH_BITS + MIN_MATCH -1 )/MIN_MATCH) /* 5 */
  38.  
  39. #define MAX_HASH_COL          17
  40.  
  41. #define REHASH( h , c )      h = (( (( h )<<HASH_SHIFT) ^ ( c )) & HASH_MASK )
  42.  
  43.  
  44. /**-----------------------------------------------------------------------
  45.   *   Aqum se encuentran las variables globales, espero que no quede nada 
  46.   * pues en caso contrario uno no puede hacer residente el codigo
  47.   *
  48.   **/
  49.  
  50.  
  51. /**-----------------------------------------------------------------------
  52.   *   Definicisn de tipos a causa de mi vagancia al escribir, tambien
  53.   * simplifica considerablemente el entendimiento de los parametros.
  54.   *
  55.   **/
  56.  
  57. typedef unsigned char  CHARS;   /* Por si en el futuro amplio a order-1    */
  58.                               /* El 1.8 Speedup , 14% compresion-down( text ) */
  59.  
  60. #endif